home *** CD-ROM | disk | FTP | other *** search
/ Collection of Tools & Utilities / Collection of Tools and Utilities.iso / dskut / wd.zip / STDIO.H < prev    next >
C/C++ Source or Header  |  1986-06-27  |  6KB  |  244 lines

  1. /*
  2.  * stdio.h
  3.  *
  4.  * defines the structure used by the level 2 I/O ("standard I/O") routines
  5.  * and some of the associated values and macros.
  6.  *
  7.  * Copyright (C) Microsoft Corporation 1984, 1985, 1986
  8.  *
  9.  */
  10.  
  11.  
  12. #define  BUFSIZ  512
  13. #define  _NFILE  20
  14. #define  FILE    struct _iobuf
  15. #define  EOF     (-1)
  16.  
  17. #define  P_tmpdir "\\TMP"
  18.  
  19. /* L_tmpnam size:  size of P_tmpdir + 1 (for the "\") +6 (for the temp
  20.  * number string) + 1 (for the null terminator)
  21.  */
  22. #define  L_tmpnam sizeof(P_tmpdir)+8
  23.  
  24. #define  SEEK_CUR 1
  25. #define  SEEK_END 2
  26. #define  SEEK_SET 0
  27.  
  28. #define  SYS_OPEN 20
  29. #define  TMP_MAX  32767
  30.  
  31. #if (!defined(M_I86CM) && !defined(M_I86LM))
  32. #define  NULL    0
  33. #else
  34. #define  NULL    0L
  35. #endif
  36.  
  37. extern FILE {
  38.     char *_ptr;
  39.     int   _cnt;
  40.     char *_base;
  41.     char  _flag;
  42.     char  _file;
  43. #ifndef NO_EXT_KEYS    /* extended keywords are enabled */
  44.     } cdecl _iob[_NFILE];
  45. #else            /* extended keywords not enabled */
  46.     } _iob[_NFILE];
  47. #endif    /* NO_EXT_KEYS */
  48.  
  49. #define  stdin   (&_iob[0])
  50. #define  stdout  (&_iob[1])
  51. #define  stderr  (&_iob[2])
  52. #define  stdaux  (&_iob[3])
  53. #define  stdprn  (&_iob[4])
  54.  
  55. #define  _IOREAD    0x01
  56. #define  _IOWRT     0x02
  57.  
  58. #define  _IOFBF     0x0
  59. #define  _IOLBF     0x40
  60. #define  _IONBF     0x04
  61.  
  62. #define  _IOMYBUF   0x08
  63. #define  _IOEOF     0x10
  64. #define  _IOERR     0x20
  65. #define  _IOSTRG    0x40
  66. #define  _IORW      0x80
  67.  
  68. #define  getc(f)    (--(f)->_cnt >= 0 ? 0xff & *(f)->_ptr++ : _filbuf(f))
  69. #define  putc(c,f)  (--(f)->_cnt >= 0 ? 0xff & (*(f)->_ptr++ = (c)) : \
  70.              _flsbuf((c),(f)))
  71.  
  72. #define  getchar()   getc(stdin)
  73. #define  putchar(c)  putc((c),stdout)
  74.  
  75. #define  feof(f)     ((f)->_flag & _IOEOF)
  76. #define  ferror(f)   ((f)->_flag & _IOERR)
  77. #define  fileno(f)   ((f)->_file)
  78.  
  79. /* function declarations for those who want strong type checking
  80.  * on arguments to library function calls
  81.  */
  82.  
  83. #ifdef LINT_ARGS    /* argument checking enabled */
  84.  
  85. #ifndef NO_EXT_KEYS    /* extended keywords are enabled */
  86. int cdecl _filbuf(FILE *);
  87. int cdecl _flsbuf(char, FILE *);
  88. void cdecl clearerr(FILE *);
  89. int cdecl fclose(FILE *);
  90. int cdecl fcloseall(void);
  91. FILE * cdecl fdopen(int, char *);
  92. int cdecl fflush(FILE *);
  93. int cdecl fgetc(FILE *);
  94. int cdecl fgetchar(void);
  95. char * cdecl fgets(char *, int, FILE *);
  96. int cdecl flushall(void);
  97. FILE * cdecl fopen(char *, char *);
  98. int cdecl fprintf(FILE *, char *, ...);
  99. int cdecl fputc(int, FILE *);
  100. int cdecl fputchar(int);
  101. int cdecl fputs(char *, FILE *);
  102. int cdecl fread(char *, int, int, FILE *);
  103. FILE * cdecl freopen(char *, char *, FILE *);
  104. int cdecl fscanf(FILE *, char *, ...);
  105. int cdecl fseek(FILE *, long, int);
  106. long cdecl ftell(FILE *);
  107. int cdecl fwrite(char *, int, int, FILE *);
  108. char * cdecl gets(char *);
  109. int cdecl getw(FILE *);
  110. void cdecl perror(char *);
  111. int cdecl printf(char *, ...);
  112. int cdecl puts(char *);
  113. int cdecl putw(int, FILE *);
  114. int cdecl remove(char *);
  115. int cdecl rename(char *, char *);
  116. void cdecl rewind(FILE *);
  117. int cdecl rmtmp(void);
  118. int cdecl scanf(char *, ...);
  119. void cdecl setbuf(FILE *, char *);
  120. int cdecl setvbuf(FILE *, char *, int, int);
  121. int cdecl sprintf(char *, char *, ...);
  122. int cdecl sscanf(char *, char *, ...);
  123. char * cdecl tempnam(char *, char *);
  124. FILE * cdecl tmpfile(void);
  125. char * cdecl tmpnam(char *);
  126. int cdecl ungetc(int, FILE *);
  127. int cdecl unlink(char *);
  128. int cdecl vfprintf(FILE *, char *, char *);
  129. int cdecl vprintf(char *, char *);
  130. int cdecl vsprintf(char *,char *, char *);
  131. #else            /* extended keywords not enabled */
  132. int _filbuf(FILE *);
  133. int _flsbuf(char, FILE *);
  134. void clearerr(FILE *);
  135. int fclose(FILE *);
  136. int fcloseall(void);
  137. FILE *fdopen(int, char *);
  138. int fflush(FILE *);
  139. int fgetc(FILE *);
  140. int fgetchar(void);
  141. char *fgets(char *, int, FILE *);
  142. int flushall(void);
  143. FILE *fopen(char *, char *);
  144. int fprintf(FILE *, char *, ...);
  145. int fputc(int, FILE *);
  146. int fputchar(int);
  147. int fputs(char *, FILE *);
  148. int fread(char *, int, int, FILE *);
  149. FILE *freopen(char *, char *, FILE *);
  150. int fscanf(FILE *, char *, ...);
  151. int fseek(FILE *, long, int);
  152. long ftell(FILE *);
  153. int fwrite(char *, int, int, FILE *);
  154. char *gets(char *);
  155. int getw(FILE *);
  156. void perror(char *);
  157. int printf(char *, ...);
  158. int puts(char *);
  159. int putw(int, FILE *);
  160. int remove(char *);
  161. int rename(char *, char *);
  162. void rewind(FILE *);
  163. int rmtmp(void);
  164. int scanf(char *, ...);
  165. void setbuf(FILE *, char *);
  166. int setvbuf(FILE *, char *, int, int);
  167. int sprintf(char *, char *, ...);
  168. int sscanf(char *, char *, ...);
  169. char *tempnam(char *, char *);
  170. FILE *tmpfile(void);
  171. char *tmpnam(char *);
  172. int ungetc(int, FILE *);
  173. int unlink(char *);
  174. int vfprintf(FILE *, char *, char *);
  175. int vprintf(char *, char *);
  176. int vsprintf(char *,char *, char *);
  177. #endif    /* NO_EXT_KEYS */
  178.  
  179. #else            /* argument checking not enabled */
  180.  
  181. #ifndef NO_EXT_KEYS    /* extended keywords are enabled */
  182. int cdecl _filbuf();
  183. int cdecl _flsbuf();
  184. void cdecl clearerr();
  185. int cdecl fclose();
  186. int cdecl fcloseall();
  187. FILE * cdecl fdopen();
  188. int cdecl fflush();
  189. int cdecl fgetc();
  190. int cdecl fgetchar();
  191. char * cdecl fgets();
  192. int cdecl flushall();
  193. FILE * cdecl fopen();
  194. int cdecl fprintf();
  195. int cdecl fputc();
  196. int cdecl fputchar();
  197. int cdecl fputs();
  198. int cdecl fread();
  199. FILE * cdecl freopen();
  200. int cdecl fscanf();
  201. int cdecl fseek();
  202. long cdecl ftell();
  203. int cdecl fwrite();
  204. char * cdecl gets();
  205. int cdecl getw();
  206. void cdecl perror();
  207. int cdecl printf();
  208. int cdecl puts();
  209. int cdecl putw();
  210. int cdecl remove();
  211. int cdecl rename();
  212. void cdecl rewind();
  213. int cdecl rmtmp();
  214. int cdecl scanf();
  215. void cdecl setbuf();
  216. int cdecl setvbuf();
  217. int cdecl sprintf();
  218. int cdecl sscanf();
  219. char * cdecl tempnam();
  220. FILE * cdecl tmpfile();
  221. char * cdecl tmpnam();
  222. int cdecl ungetc();
  223. int cdecl unlink();
  224. int cdecl vfprintf();
  225. int cdecl vprintf();
  226. int cdecl vsprintf();
  227. #else            /* extended keywords not enabled */
  228. void clearerr();
  229. FILE *fdopen();
  230. char *fgets();
  231. FILE *fopen();
  232. FILE *freopen();
  233. long ftell();
  234. char *gets();
  235. void perror();
  236. void rewind();
  237. void setbuf();
  238. char *tempnam();
  239. FILE *tmpfile();
  240. char *tmpnam();
  241. #endif    /* NO_EXT_KEYS */
  242.  
  243. #endif    /* LINT_ARGS */
  244.